The invention relates to collaborative work of several users working on common or related objects—which are usually stored in a common centralized database but not necessarily—wherein each user works on a respective local computer environment connected to a computer network common to all users. Users have to collaborate with each other when the work of one impacts the work of the other(s). In other words, users need to share information about their respective work with the others. However, sharing information between users has issues especially when users are located in different geographical areas which may be far-off each others, e.g. in different buildings, towns or countries. In such a case, users need to share information with the help of their respective computers via the common computer network.
The invention relates more particularly to collaborative work in the case in which users work on objects based on the representation thereof displayed in a graphical user interface (GUI).
Such a need exists in various computer-aided techniques, notably in applications such as CAD, CAE and CAM and more generally in PLM applications.
CAD stands for Computer-Aided Design and relates to software solutions for authoring product design. CAE is an acronym for Computer-Aided Engineering, e.g. it relates to software solutions for simulating the physical behavior of a future product. CAM stands for Computer-Aided Manufacturing and typically includes software solutions for defining manufacturing processes and operations.
A number of systems and programs are offered on the market for the design of parts or assemblies of parts, forming a product, such as the one provided by Dassault Systèmes under the trademark CATIA. These CAD systems allow a user to construct and manipulate complex three dimensional (3D) models of objects or assemblies of objects. CAD systems thus provide a representation of modeled objects using edges or lines, in certain cases with faces. Lines or edges may be represented in various manners, e.g. non-uniform rational B-splines (NURBS). These CAD systems manage parts or assemblies of parts as modeled objects, which are essentially specifications of geometry. Specifically, CAD files contain specifications, from which geometry is generated, which in turn allows for a representation to be generated. Specifications, geometry and representation may be stored in a single CAD file or multiple ones. CAD systems include graphic tools for representing the modeled objects to the designers; these tools are dedicated to the display of complex objects—the typical size of a file representing an object in a CAD system being in the range of one Megabyte per part, and an assembly may comprise thousands of parts. A CAD system manages models of objects, which are stored in electronic files.
In computer-aided techniques, the graphical user interface (GUI) plays an important role as regards the efficiency of the technique.
PLM stands for Product Lifecycle Management which refers to a business strategy that helps companies to share product data, apply common processes, and leverage corporate knowledge for the development of products from conception to the end of their life, across the concept of extended enterprise. By including the actors (company departments, business partners, suppliers, Original Equipment Manufacturers (OEM), and customers), PLM may allow this network to operate as a single entity to conceptualize, design, build, and support products and processes.
Some PLM solutions make it for instance possible to design and develop products by creating digital mockups (a 3D graphical model of a product). For instance, the digital product may be first defined and simulated using an appropriate application. Then, the lean digital manufacturing processes may be defined and modeled.
The PLM solution provided by Dassault Systèmes (under the trademarks CATIA, ENOVIA and DELMIA) provides an Engineering Hub, which organizes product engineering knowledge, a Manufacturing Hub, which manages manufacturing engineering knowledge, and an Enterprise Hub which enables enterprise integrations and connections into both the Engineering and Manufacturing Hubs. All together the system delivers an open object model linking products, processes, resources to enable dynamic, knowledge-based product creation and decision support that drives optimized product definition, manufacturing preparation, production and service. Such PLM solutions comprise a relational database of products. The database comprises a set of textual data and relations between the data. Data typically include technical data related to the products said data being ordered in a hierarchy of data and are indexed to be searchable. The data are representative of the modeled objects, which are often modeled products and processes.
Product lifecycle information, including product configuration, process knowledge and resources information are typically intended to be edited in a collaborative way.
To this respect, a collaborative workspace can be defined as an interconnected environment in which participants in the product lifecycle (design and also marketing, sales, manufacturing, OEMs, suppliers, and customers) can access and interact with each other's “In-Work” designs, thereby enhancing communication through exchange, direct use, simulation and validation in 3D.
Generally speaking, there exists two trends for enabling collaborative work of users working on the picture of objects displayed on GUIs in their local computer environment.
A first trend consists in providing a specific collaborative workspace accessible by each user on its local computer. This collaborative workspace is distinct from the user's own workspace in which he works on the object(s) he is responsible for. So, when users wish to collaborate, they have to select and copy objects displayed in their own workspace and paste them in the collaborative workspace to enable other users to view them in the collaborative workspace. As a result, a user's own workspace is displayed in a first window and the collaborative workspace is displayed in another window in the GUI of the user's computer.
A first drawback thereof is related to the fact that when a first user pastes an object in the collaborative workspace at the request of a second user, the latter has to merge mentally his own object displayed in his workspace and the object of the first user displayed in the collaborative workspace in order to have an idea of the result of the possible merge of the objects. This mental operation can prove to be quite difficult for a user. It is even further true as the object displayed in his own workspace and the object of the first user displayed in the collaborative workspace are likely to be displayed in different contextual viewing situations, e.g. different scales or different viewpoints.
A second drawback is due to the fact that when users make modifications to objects in the collaborative workspace (in the case this possibility is provided) and wish to confirm these modifications, they have to make again the same modifications subsequently in their own workspace.
A second trend consists in giving each user the possibility to access fully in its own workspace objects of other users and to chat with each other via the common network. In fact, there is no collaborative workspace for graphical objects in such a case. For example, in the case of a CAD application, a user can chat with a second user, but he cannot send to him a view of the object on which he is working in his own workspace. Therefore, the second user has to access the central database and load the full data of the first user's object in his own workspace. As a result, the second user's workspace contains the full data of both the second user's object and the first user's object which are merged in it.
A drawback thereof is that the second user does not know the result of the merge as long as he has not actually loaded and merged the full data of the first user's object in his own workspace. So, it may happen he wishes to undo the merging operation and remove the data of the first user's object in the case he is not satisfied therewith. For example, the second user may have loaded an undesired object of the first user due to a misunderstanding with the first user. But undoing the merging operation may prove to be complicated and time consuming.
Another drawback thereof is that the second user may not have the required rights to modify the first user's object. So, the second user is not able to modify in his own workspace the first user's object e.g. in the case the second user wishes to suggest to the first user a modification of the latter's object.